/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 4; tab-width: 4 -*-  */
/*
 * catchit
 * Copyright (C) 2013 Ryan Grinkewitz <graphite@Toto>
 * 
 */

#ifndef _DISPLAY_MANAGER_H_
#define _DISPLAY_MANAGER_H_

#include "SDL/SDL.h"
#include "SDL/SDL_ttf.h"

#include "sprite-manager.h"
#include "constants.h"
#include "game-state.h"

class DisplayManager
{
public:

	bool initialize();

	
	void updateDisplay(GameState* currentState);
	
	static DisplayManager* getInstance();
	
protected:

private:
	SpriteManager* spriteManager;
	
	SDL_Surface *main_screen;
	TTF_Font *font;
	TTF_Font *winFont;
	SDL_Color textColor;
	
	DisplayManager();
	DisplayManager(DisplayManager const&){};
	DisplayManager& operator=(DisplayManager const&){};  
	static DisplayManager* displayManagerInstance;

	//level is the level being blitted to the main_screen
	//game position is the current offset from the very bottom
	//visible_level is the count from 0 - 19 of the visible levels
	void displayLevel(Level* level);

	void displayScores(Jumper* player1, Jumper* player2);

	void displayWin(Jumper* player);
};

#endif // _DISPLAY_MANAGER_H_

